import { ref } from 'vue'
import { defineStore } from 'pinia'
export const logintoken = defineStore(
  'logintoken1',
  () => {
    // 创建响应式数据
    const token = ref<any>()
    // 保存会员信息，登录时使用
    // 1. token  被设置到 store
    // 2. persist 自动调用 setItem 保存到 uniStorage
    // 3. 页面刷新后数据会自动恢复
    const setToken = (val: any) => {
      token.value = val
      // console.log('✅ 登录成功，保存会员信息到 store', token.value)
    }
    //清理会员信息，退出时使用
    // 1. store 状态被清空
    // 2. persist 自动更新存储
    const clearToken = () => {
      token.value = undefined
    }

    

    //记得 return
    return {
      token,
      setToken,
      clearToken,
    }
  },
  {
    // 持久化
    // persist: true,
    persist: { 
      key: 'token',
      storage: {
        getItem(key) {
          const value = uni.getStorageSync(key)
          return value ? JSON.parse(value) : null
        },
        setItem(key, value) {
          uni.setStorageSync(key, JSON.stringify(value))
        },
      },
    },
  }
)